8. (付録) IM-共通マスタAPIから実行する¶
インポート/エクスポートは、APIのメソッドとして用意されています。テナント環境セットアップで登録される各ジョブファイルは、このAPIを実行しています。この章では、APIからインポート/エクスポートを実行する方法を解説します。
- プログラムの一部としてインポート/エクスポートをしたい。
- 設定ファイルを使い分けたい。
- plugin.xmlでカテゴリをstandard以外に設定したインポート/エクスポートを実行したい。
この場合は、APIを実行するプログラムを作成して実行することができます。
APIからインポートを実行する場合、トランザクション処理を実装する必要があります。トランザクションを開始せずにインポートを実行した場合、オートコミットモードで実行されます。この場合、インポートが予期せぬ中断がされた場合にマスタデータの整合性が壊れる恐れがあります。必ずトランザクションを実装し、中断された場合はロールバックするようにしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 String categoryName = "standard"; String updateUserCd = "system"; String storageFilePath = "im_master/config/import_config.xml"; TenantInfoManager tenantManager= new TenantInfoManager(); Locale defaultLocale = tenantManager.getTenantoInfo().getLocale(); PublicStorage configFile = new PublicStorage(storageFilePath); ByteArrayInputStream stream = new ByteArrayInputStream(configFile.load()); CompanyManager manager = new CompanyManager(updateUserCd, defaultLocal); manager.importData(categoryName, stream); //例外、トランザクション処理は割愛しています。【リスト:サンプルプログラム】
7行目 Public Storageから設定ファイルを取得しています。インポートデータファイルではありませんので注意してください。8行目 読み込んだバイト配列でInputStreamを作成しています。これがインポートするマネージャの引数の1つとなります。11行目 インポートを実行します。一つ目の引数categoryNameは、plugin.xmlで設定したカテゴリ名です。作成済みのInputStreamを一緒に実行メソッドに渡しています。この処理を実行するとインポートが開始されます。